<?php
if (defined('IN_TG') == FALSE) {
    exit('非法调用');
}
// 在参数传递的时候，参数没有加单引号或者双引号，系统就认为是个常量
if (function_exists('_alert_back') == false) {
    exit('_alert_back函数调用出错，请检查！');
}

/**
 *
 * @param unknown $_string
 *            POST传入的密码
 * @param unknown $_string2
 *            POST 传入的确认密码
 * @param number $_min
 *            密码最小位数，默认6位
 * @param number $_max
 *            密码最大位数，默认18位,防过长溢出，不知道是不是这么一回事
 * @return string 返回sha1()加密的密码
 */
function _check_password($_string, $_string2, $_min = 6, $_max = 18)
{
    if (strlen($_string) < $_min) {
        _alert_back('密码至少输入' . $_min . '位！');
    }
    if (strlen($_string) > $_max) {
        _alert_back('密码太长了，最多' . $_max . '位！');
    }
    if ($_string != $_string2) {
        _alert_back('两次输入的密码不一致！');
    }
    return mysqli_real_escape_string(_link(),addcslashes(sha1($_string),"\\%_"));
}

/**
 *
 * @param string $_string
 *            接受POST的提示问题
 * @param number $_min
 *            提示问题最小长度，默认4位
 * @param number $_min
 *            提示问题最大长度，默认20位
 * @return string 返回过滤后的提示问题
 */
function _check_question($_string, $_min = 4, $_max = 20)
{
    if (strlen($_string) < $_min) {
        _alert_back('提示问题至少需要' . $_min . '个字符!');
    } elseif (strlen($_string) > $_max) {
        _alert_back('提示问题不能大于' . $_max . '个字符!');
    }
    return mysqli_real_escape_string(_link(),addcslashes($_string,"\\%_"));
}

/**
 *
 * @param string $_string
 *            接受POST的提示答案
 * @param number $_min
 *            提示答案最小长度，默认2位
 * @param number $_min
 *            提示答案最大长度，默认20位
 * @return string 返回过滤后的提示问题
 */
function _check_answer($_string,$_string2,$_min = 2, $_max = 20)
{
    if($_string==$_string2){
        _alert_back('禁止问题与回答一致！');
    }
    elseif (strlen($_string) < $_min) {
        _alert_back('回答至少需要' . $_min . '个字符!');
    } elseif (strlen($_string) > $_max) {
        _alert_back('回答不能大于' . $_max . '个字符!');
    }
    return mysqli_real_escape_string(_link(),addcslashes(sha1($_string),"\\%_"));
}

/**
 * _check_name() 检测并过滤POST中的用户名
 *
 * @param string $_string
 *            接受POST中的名字
 * @param number $_min
 *            用户名默认最小长度2位
 * @param number $_max
 *            用户名最大长度20位
 * @return string 返回过滤了的名字
 */
function _check_name($_string, $_min = 2, $_max = 20)
{
    // 截取首位空格
    $_string = trim($_string);
    // 长度限制
    if (mb_strlen($_string, 'UTF-8') < $_min || mb_strlen($_string, 'UTF-8') > $_max) {
        _alert_back('用户名不能大于20位，或者小于2位！');
    }
    // '空格'，'/'，'<'，'>'等限制，限制不够，需改进匹配规则
    $_char_pattern = '/[\<\>\'\"\ ]/';
    if (preg_match($_char_pattern, $_string)) {
        _alert_back('不能输入特殊字符！');
    }
    // 不能注册的用户名，学习用，不够实用。
    $_mg[0] = 'AB';
    $_mg[1] = 'BC';
    $_mg[2] = 'CD';
    foreach ($_mg as $value) {
        $_mg_string .= '[' . $value . ']\n';
    }
    // 大海捞针，绝对匹配
    if (in_array($_string, $_mg)) {
        _alert_back($_mg_string . '是不能注册的用户名！');
    }
    
    return mysqli_real_escape_string(_link(),addcslashes($_string,"\\%_"));
}
function _check_email($_string){
    return mysqli_real_escape_string(_link(),addcslashes($_string,"\\%_"));
}
function _check_qq($_string){
    return mysqli_real_escape_string(_link(),addcslashes($_string,"\\%_"));
}
function _check_url($_string){
    return mysqli_real_escape_string(_link(),addcslashes($_string,"\\%_"));
}

?>